#define _CRT_SECURE_NO_WARNINGS 1

//【程序23】
//题目：给一个不多于5位的正整数，要求：一、求它是几位数，二、逆序打印出各位数字。
//
//分析：
//这个比较简单，只是要想明白如何得到一个正整数的个、十、百、千、万位，具体见程序。

#include <stdio.h>
#include <math.h>

int main()
{
	int a = 0;
	int b[5] = { 0 };
	int i, j;

	printf("请输入一个不多于5位的正整数：\n");
	do
	{
		scanf("%d", &a);
		if (a <= 0 || a >= 100000)
		{
			printf("输入不合法,请输入一个不多于5位的正整数：\n");
		}
	} while (a <= 0 || a >= 100000);

	printf("输入的正整数为：%d \r\n", a);

	//判断是几位数
	for (i = 0; i < 5; i++)
	{
		if (a >= pow(10.0, i))//pow(a,b),表示a^b
			continue;
		else
			break;
	}

	b[0] = a % 10; //个
	b[1] = a % 100 / 10;//十
	b[2] = a % 1000 / 100;//百
	b[3] = a % 10000 / 1000;//千
	b[4] = a / 10000;//万

	printf("它是%d位数\r\n", i);
	printf("逆序输出各位数字：");
	//逆序输出
	for (j = 0; j < i; j++)
	{
		printf("%d", b[j]);
	}
	printf("\r\n");
	return 0;
}
